A network packet processor may input a stream of network packets, manipulate the contents of the network packets, and output another stream of modified network packets. The manipulations may implement a protocol for processing network packets. For example, the network packet processor may implement a protocol layer of a communication protocol, and for a high-level packet received from a higher protocol layer and delivered to a lower protocol layer for eventual transmission on the communication media, the manipulations may encapsulate the high-level packet within a low-level packet of the lower protocol layer.
Packet parsing involves processing packets to determine where protocol boundaries and protocol layers reside within packets. In order to make decisions about the next protocol layer to inspect, packet fields within the packets are examined. Each protocol layer may require the inspection of multiple fields within the protocol layer of the packet to assist in making parsing decisions.
High-speed packet parsing may entail streaming data transmission with wide data paths, such as 1024 or 2048 bits or more. Packet parsing requires flexibility in order to accommodate different protocols and hence different packet formats. Thus, the rules that specify how to process the protocol layers should be configurable. It is desirable that the configurability be both fast and interchangeable after a system has been implemented and deployed.
The present invention may address one or more of the above issues.